Method and system for synchronizing program masks

ABSTRACT

A method is provided for synchronization of program masks, wherein the method comprises receiving a first request message from the first client means, wherein a first program mask is requested by the first request message, determining a first unique identifier for the requested first program mask, transmitting the requested first program mask and the first unique identifier to the first client means, receiving a second request message from the second client means, wherein the second request message comprises at least the first unique identifier, determining the first program mask, which is assigned to the received first unique identifier, and transmitting the determined first program mask to the second client means.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of International Application No.PCT/EP2013/057791, filed Apr. 15, 2013, the contents of which areincorporated by reference herein.

TECHNICAL FIELD

The invention relates to a method for synchronization of program masksin a system having at least one server means and at least one firstclient means and a second client means, wherein the client means can becoupled to the server means, and wherein the synchronization of theprogram masks can be carried out off-line as well as online. Further,the invention relates to a system, in particular, a data processingmeans being adapted to carry out the method for synchronization ofprogram masks according to the invention.

BACKGROUND

Computer programs, websites, or other software products are becomingmore and more complex and comprehensive due to technical developments.The more complex and comprehensive the computer programs or websites arebecoming, the more difficult it will be to arrive in an efficient mannerat a defined location (for example, an input mask of a computer programon a specific Internet page of a website) of the computer program or ofthe website, for example, for purposes of support. This is, for example,necessary in the context of a support process, in order to enable two ormore persons (for example, a support assistant and a customer) beingspatially separated from each other to talk to each other or to exchangeviews with respect to the same display content (input mask of a computerprogram or Internet page of a website). Here, there exists a problem inthat it has to be ensured that the support assistant as well as thecustomer both are viewing the same input mask or Internet page.

A further problem, in particular, within the context of a supportprocess, is that the input mask or website displayed at the customer'ssite may not be adapted or modified by the support assistant in order tonotify the customer, for example, on information in the input mask orwebsite being relevant for him, or to adapt or modify certaininformation within the input mask or website for the customer withoutsuch a modification having any influence on the display of the sameinput mask or website at other customer's sites. For example, the priceof a product being displayed on a website for a certain customer viewingthe website may not be adapted, for example, may not be reduced.

It is known from prior art to enable access to the remote system of thecustomer by a support assistant, for example, by means of a remotecontrol software. This solution, however, has several disadvantages.

At first, it is necessary for the client software to be installed on thesystem of the client such that the support assistant is enabled toaccess the system of the customer. Legal restrictions, as corporateprinciples, however, may prevent the customer from being allowed toinstall such a client software on his system.

Even if the customer has installed such a client software, technicalrestrictions may lead to the support assistant not being allowed toaccess the system of the customer, for example, if a firewall of thecompany prevents a remote access. The implementation of such remotecontrol software, thereby, is very time-consuming and prone to errors.In particular, in case support is only needed rarely, the implementationof such remote control software may pose a substantial expense factor,which renders such an implementation uneconomical.

Therefore, it is an object of the invention to provide solutions, bymeans of which it may be ensured in a simple, efficient, andsubstantially error-free manner that two or more persons being spatiallyseparated from each other are viewing the same program mask of acomputer program or the same internet page of a website, withoutadditional software having to be installed for this on a remotecomputer, and which enable to adapt or to modify the displayed inputmask of a computer program or the displayed internet page of a websitefor a certain user without the modifications being visible for otherusers of the computer program or the internet page.

SUMMARY

According to the invention, this object is solved by a method forsynchronization of program masks, a data processing means, as well as acomputer program product according to the independent claims. Preferredembodiments of the invention are defined in the dependent claims.

Accordingly, a method for synchronization of program masks in a systemis provided, comprising at least a server means and at least a firstclient means and a second client means, wherein the client means can becoupled to at least a server means, and wherein the method comprises thefollowing steps:

-   -   a. receiving a first request message from the first client        means, wherein a first program mask is requested by means of the        first request message;    -   b. determining a first unique identifier for the requested first        program mask;    -   c. transmitting the requested first program mask and the first        unique identifier to the first client means;    -   d. receiving a second request message from the first client        means, wherein the second request message comprises at least the        first unique identifier;    -   e. determining the first program mask, which is assigned to the        received first unique identifier; and    -   f. transmitting the determined first program mask to the second        client means.

Preferably, the determining of the first unique identifier comprises:

-   -   a. generating the first unique identifier for the requested        first program mask; and    -   b. storing the first unique identifier in a storage means,        wherein the first unique identifier is assigned to the requested        first program mask.

It is preferred, if, during determining of the first program mask, thefirst program mask assigned to the received first unique identifier inthe storage means is queried in the storage means and information on thefirst program mask is received by the storage means as result of therequest.

The first unique identifier received with the second request messagefrom the second client means may have been transmitted from the firstclient means to the second client means.

Also, a method for synchronization of program masks in a system isprovided, comprising at least a server means and at least a first clientmeans and a second client means, wherein the client means can be coupledto at least a server means, and wherein the method comprises thefollowing steps:

-   -   a. receiving a third request message from the second client        means, wherein a second program mask is requested by means of        the third request message;    -   b. determining a second unique identifier for the requested        second program mask;    -   c. transmitting the requested second program mask and the second        unique identifier to the second client means;    -   d. receiving a fourth request message from the first client        means, wherein the fourth request message comprises at least the        second unique identifier;    -   e. determining the second program mask, which is assigned to the        received second unique identifier; and    -   f. transmitting the determined second program mask to the first        client means.

The determination of the second unique identifier may comprise:

-   -   a. generating the second unique identifier for the requested        second program mask; and    -   b. storing the second unique identifier in a storage means,        wherein the second unique identifier is assigned to the        requested second program mask.

It is preferred, if, during determining of the second program mask, thesecond program mask assigned to the received second unique identifier inthe storage means is queried in the storage means, and information onthe second program mask may be received by the storage means as a resultof the request.

The second unique identifier received with the fourth request message bythe first client means may have been transmitted from the second clientmeans to the first client means.

Further, the steps of the method mentioned at last may be carried out inthe method mentioned at first.

In the methods according to the invention, the steps may be carried outon the server side.

In the methods according to the invention, the server means may receivefrom the second client means an update message comprising information onwhich parts of the first or second program masks transmitted to thefirst client means, which comprise a number of parts, are to be updatedand how they are to be updated.

In the method according to the invention, the server means may store thereceived update message in the storage means, and may assign it to thefirst or second unique identifier.

It is preferable, if the server means provides the update message fortransmission to the first client means, in order to prompt an update ofthe transmitted first or second program masks according to theinformation comprised in the update message at the first client means.

The server means may prompt, during completion of the method, a deletionof the first or second unique identifiers stored in the storage means.

In a first step, a session may be started for the first client means,and in a last step, the session may be terminated.

Preferably, the first client means may be identified by a unique clientidentifier, wherein the first and/or the second unique identifier may beassigned to the client identifier, and the assignments are stored in thestorage means.

In a last step, the session may be terminated, and the uniqueidentifiers assigned to the client identifier may be deleted in thestorage means.

It has been found to be advantageous, if the unique client identifiercomprises one of an IP address, MAC address, browser identifier,software license number, hardware serial number, email address,telephone number, EAN code, and a unique biometric feature. Thetelephone number may be provided with or without an area code.

The first and/or the second program masks may be represented by ahierarchical tree structure, wherein each part of the program mask isrepresented by a node in the tree structure, wherein each part of theprogram mask may comprise a number of parts of the program mask, andwherein the update message comprises information on which nodes of thetree structure are to be updated and how they are to be updated.

The first and/or the second program mask may comprise a display fieldfor display of the first or of the second unique identifier, and aninput field for input of the first or of the second unique identifier.

The program mask may be an input mask of a computer program or anInternet page.

It is especially preferred, if the first and the second uniqueidentifiers respectively are a numerical sequence, wherein the number ofdigits of the first identifier is different from the number of digits ofthe second identifier.

It is specifically advantageous, if the second identifier comprises lessdigits than the first identifier.

The server means may be a component of the first client means and/or ofthe second client means, in particular, as a service executable on thefirst client means and/or on the second client means.

Further, a data processing means is provided, which may be coupled to atleast a first client means and a second client means, wherein the dataprocessing means is adapted to execute the method according to theinvention.

Further, a computer program product is provided, which may be loadedinto the memory of a data processing means, and which comprises programsections, by means of which the steps of the method according to theinvention are executed, when the computer program product is beingexecuted on the data processing means.

Further, also a signal sequence is provided, in particular, a computerreadable signal sequence, and which is suitable for the transmission ina communications network, wherein the signal sequence represents data,by means of which, if loaded into a processor of a computer, inparticular, a data processing means according to the invention, a methodaccording to the invention can be executed.

BRIEF DESCRIPTION OF THE DRAWINGS

Details and features of the invention as well as concrete embodiments ofthe invention can be derived from the following description inconnection with the drawing, in which:

FIG. 1 shows a section of a website:

FIG. 2 a shows a block diagram of a system according to the inventionfor explaining the method according to the invention in an online mode;

FIG. 2 b shows an alternative block diagram of a system according to theinvention for explaining the method according to the invention in anoff-line mode;

FIG. 3 shows a sequence diagram of a method according to the invention;

FIG. 4 shows a sequence diagram of a method according to the invention;

FIG. 5 shows a flow chart of a method according to the invention, inwhich the methods according to FIG. 3 and FIG. 4 are combined; and

FIG. 6 shows an example of a program mask, which is adapted or modifiedaccording to the method according to the invention.

DETAILED DESCRIPTION

In the following, the invention will be described by means of an exampleof an Internet page (also referred to as web page), which is requestedby a customer at a client means, and for which the customer is providedwith support by a support assistant of the provider of the website. Theinvention, however, is not restricted to Internet pages. Also, programmasks of computer programs (e.g., operating systems, applicationprograms, or so-called APPs), which are executed locally on a computer,a smart phone, a tablet PC or the like can be synchronized.

FIG. 1 shows a program mask 10, for example, an Internet page of awebsite, which is displayed on the customer's site at his client means,for example, a computer, a tablet PC, or a smart phone. The Internetpage 10 may be, for example, a product page, on which information on acertain product, the availability of the product, a product price,delivery time, etc. are displayed.

In the lower region or in the bottom region of the Internet page 10, adisplay field 11, an input field 12, and a button 13 assigned to theinput field are displayed. In the display field 11, a unique identifierof the program mask or Internet page 10 is displayed, which, uponrequesting the Internet page 10, is generated dynamically by a Webserver. In the input field 12, the customer may input a further uniqueidentifier, which is, for example, notified by a support assistant tothe customer. The unique identifier to be input into the input field 12,also identifies an Internet page of the website, and is also generateddynamically by the Web server. By manipulating the button 13, thecustomer may confirm the unique identifier input into the input field12, and may request the program mask or Internet page assigned to theconfirmed unique identifier from the Web server.

The unique identifier input by the customer into the input field 12 isnotified to the customer by the support assistant, who has initiated thegeneration of the unique identifier for the corresponding Internet page.This may, for example, be effected by calling the corresponding Internetpage by the support assistant, wherein the dynamically generated uniqueidentifier is notified to the support assistant, who may in turn notifyit to the customer.

After the customer has input the unique identifier received from thesupport assistant into the input field 12, and has manipulated the inputby means of the button 13, the same Internet page 10 is displayed at thecustomer's site and also at the support assistant's site, whereby theInternet pages displayed at the customer's site and at the supportassistant's site are synchronized.

The synchronization of the web pages displayed at the customer and atthe support assistant may also be effected in opposite direction. Forthis, the customer informs the support assistant on the uniqueidentifier displayed in the display field 11, who then calls theInternet page assigned to the unique identifier accordingly, whereby theweb pages displayed at the customer's site and at the supportassistant's site are synchronized.

Preferably, the unique identifiers respectively consist of a numericalsequence. The two numerical sequences may have different lengths.

According to a preferred embodiment of the invention, the numericalsequence to be input into the input field 12 is shorter than thenumerical sequence displayed in the display field 11. This has theadvantage that the transmission of the unique identifier to be inputinto the input field 12 is less prone to errors and may be input faster.

The numerical sequence to be input into the input field 12 may also belonger than the numerical sequence displayed in the display field 11.

The use of numerical sequences, moreover, has the advantage that theidentification of Internet pages is independent of languages, enablingor substantially facilitating a worldwide implementation of the methodaccording to the invention.

The area, in which the display field 11, the input field 12, and thebutton 13 are displayed preferably is configured such that it alwaysremains visible, preferably in the bottom region, independently of thescroll position of the Internet page.

The method described above, when using a display field 11 and an inputfield 12, is specifically advantageous, if the customer visits awebsite, which does not require an authentication (for example, by meansof a login), because without corresponding login, the support assistantlacks information on which Internet page 10 the customer currently hasrequested.

For websites requiring authentication of the customer, the display field11, the input field 12 and the button 13 may be omitted. In this case,the support assistant may have a unique identifier generated on the Webserver for an Internet page for the logged in customer, which is to bedisplayed on the client means of the customer, and may store thegenerated unique identifier, for example, in a database, wherein thegenerated unique identifier in the database is assigned to the logged incustomer. The Internet page displayed at the customer's site may beadapted to query the Web server cyclically in order to determine,whether such a unique identifier is deposited. As far as this is thecase, the Internet page may request the Internet page assigned to thisidentifier by using the deposited unique identifier, similar to theprocedure when inputting into the input field 12 a unique identifier,which is confirmed by the button 13. A manual input of a uniqueidentifier into the input field 12 by the customer thereby may beomitted completely, leading to a substantial increase in security,because neither identifiers have to be exchanged outside of the system,nor identifiers have to be input into the input field 12.

In case for synchronization of the program masks, the display field 11and the input field 12 are used, because, for example, the customer isnot logged in, it would, however, also be possible to input into theinput fields 12 also an Internet address (URL) instead of uniquenumerical identifiers, and to request the Internet page identified bythis URL by means of manipulating the button 13. This, however, has thesubstantial disadvantage that an Internet page 10 displayed at thecustomer's site may no longer be modified or adapted exactly for thiscustomer without other customers also querying the same Internet pagehaving the modifications displayed, too. If, for example, two differentcustomers call one and the same Internet page, it may not bedistinguished for which one of the two customers the modifications madeto this Internet page are valid.

This problem is avoided by using unique identifiers in that for one andthe same Internet page being queried by different customers, differentidentifiers are generated respectively. Thereby, a modification of theInternet page may be carried out for a certain customer without othercustomers querying the same Internet page learning about thismodification. The modification of an Internet page is assigned to theunique identifier of the Internet page according to the invention, aswill be described in further detail with reference to FIG. 3 and FIG. 4.

FIG. 2 a shows a block diagram of a system according to the inventionfor explaining the method for synchronization of program masks accordingto the invention in an online mode.

The first client means C1 and second client means C2 are coupled (onlinemode) to a server means S via a communications network, for example, theInternet, wherein the server means may be a Web server. The server meansis coupled to a database DB. The first client means C1 is assigned to auser U1, who may be, for example, a customer. The second client means C2is assigned to a second user U2, who may be, for example, a supportassistant. On the server means S, a website is hosted, the Internetpages of which may be queried by either one of the first client means C1and also the second client means C2.

The first user U1 requests, via the first client means C1, an Internetpage from the server means S, which is displayed at the first clientmeans C1, and which comprises the display field 11 shown in FIG. 1.During requesting the Internet page via the client means C1, the firstunique identifier ID1 is generated by the server means S, and is storedin the database DB, wherein in the database, the unique identifier ID1is assigned to the requested Internet page. The requested first uniqueidentifier ID1 is transmitted to the first client means C1 together withthe requested Internet page, and is displayed there in the display field11.

The first user U1 may now inform the second user U2 about the firstunique identifier ID1. The second user U2 may input the first uniqueidentifier ID1 notified to him into a support input field at the secondclient means C2, and may request the Internet page assigned to thisunique identifier from the Web server S. For this, the first uniqueidentifier ID1 is transmitted from the second client means C2 to theserver means S, which queries the Internet page belonging to this uniqueidentifier from the database DB by means of the first unique identifierID1. The Internet page (mask 1) thus determined is then transmitted fromthe server means S to the second client means C2 and is displayed there.The Internet pages displayed at the first client means C1 and at thesecond client means C2 are now synchronous, i.e., the same Internet pageis displayed to the users U1 and U2. As a result, the first user U1 andthe second user U2 are able to communicate via the displayed Internetpage.

If both users U1, U2 find out that, for example, the product advertisedon the displayed Internet page does not comprise the desired features,the second user U2 or the support assistant may “guide” the first userU1 or the customer to another Internet page, on which an alternativeproduct is advertised. For this, the second user U2 requests analternative Internet page via the second client means C2 from the servermeans S. For the requested alternative Internet page, the server means Sgenerates a second unique identifier ID2, and stores the second uniqueidentifier ID2 in the database DB. The second unique identifier ID2 isassigned to the requested alternative Internet page in the database. Asreaction to the request of the alternative Internet page, thealternative Internet page is transmitted to the second client means C2together with the second unique identifier ID2, and is displayed therefor the second user U2.

The second user U2 now may inform the first user U1 about the secondunique identifier ID2. The first user U1 may input the second uniqueidentifier ID2 of the Internet page displayed at the first client meansC1 notified to him into the input field 12, and may confirm the inputwith the button 13. By confirmation of the input, the Internet pageassigned to the second unique identifier ID2 is requested by the firstclient means C1 by transmitting the second unique identifier ID2 to theserver means S. For this, the server means S determines the Internetpage assigned to the second unique identifier ID2 in the database DB,and transmits the determined Internet page (mask 2) to the first clientmeans C1, where it is displayed for the first user U1.

Thereby, the Internet pages displayed at the first client means C1 andthe second client means C2 are synchronized again.

As explained above with reference to FIG. 1, the exchange of uniqueidentifiers ID1, ID2 between the two users U1, U2 may also be carriedout within the system, i.e., two users U1, U2 do not have to input thecorresponding unique identifiers manually. For this, it is onlynecessary for the first user U1 or customer to authenticate himself tothe second user U2 or support assistant, for example, by notification ofa login name or other identification uniquely identifying the first userU1. As soon as the support assistant U2 is notified about the identifieruniquely identifying the customer U1, the exchange of the uniqueidentifiers ID1, ID2 may be executed within the system completely, ashas been explained above with reference to FIG. 1, without the supportassistant U2 having to inform the customer U1 (or the customer thesupport assistant) about the identifier by telephone.

FIG. 2 b shows an alternative block diagram of a system according to theinvention for explaining the method for synchronization of program masksaccording to the invention in an off-line mode.

A first client means C1 being assigned to a first user U1 is coupled toa server means S1 via a communications network. The server means S1 is,in turn, coupled to a database DB1. The server means S1 may also be partof the client means C1, wherein the client means C1 may be coupled tothe database DB1. In a further embodiment, the database DB1 may also bepart of the client means C1 such that the client means C1 comprises theserver means S1 as well as also the database DB1. The server means, aspart of the first client means C1, may also be configured as servicebeing executable on the first client means C1.

The first server means S1 may comprise an application server or anInternet server.

The second client means C2 being assigned to a second user U2 is coupledto a second server means S2 via a communications network, which in turnmay be coupled to a second database DB2. The server means S2 may also bepart of the client means C2, wherein the client means C2 may comprisethe second server means S2 and/or the second database DB2. The servermeans, as part of the second client means C2, may also be configured asa service being executable on the second client means C2.

However, in the off-line mode, the server means S1, S2 and/or thedatabases DB1, DB2 are not coupled to each other via a communicationsnetwork.

Several websites or several application programs may be hosted on thefirst server means S1 and on the second server means S2. For example, aproduct website and/or an operation system or another applicationprogram may be hosted on both server means S1, S2.

In the first database DB1 and in the second database DB2, a uniqueidentifier is stored respectively for a certain application (website orapplication program) for each program mask of the application, whereinin the two databases DB1, DB2, the same unique identifier is stored forthe same program mask and assigned to the program mask.

The first user U1 requests via the first client means C1 a program maskfrom the first server means S1, which is displayed at the first clientmeans C1. Prior to displaying the requested program mask at the firstclient means C1, the server means S1 determines the unique identifierassigned to the requested program mask in the first database DB1. Therequested program mask is then transmitted together with the uniqueidentifier (first unique identifier ID1) to the first client means C1,and is displayed there together with the requested program mask.

The first unique identifier ID1 determined and displayed at the firstclient means C1 is then transmitted to the second client means C2 beingeffected, for example, by the first user U1 informing the second user U2about the first unique identifier ID1, as far as no communicationconnection exists between the first client means C1 and the secondclient means C2. As far as a communication connection exists between thetwo client means C1, C2, the first unique identifier ID1 can betransmitted via this communication connection from the first clientmeans C1 to the second client means C2.

After transmission of the first unique identifier ID1, the second userU2 may input the latter into a support input field at the second clientmeans C1, and request the program mask from the second server means S2belonging to this unique identifier ID1. For this, the first uniqueidentifier ID1 is transmitted from the second client means C2 to theserver means S2, which queries the program mask belonging to this uniqueidentifier by means of the first unique identifier ID1 from the databaseDB2. The determined program mask is then transmitted from the servermeans S2 to the second client means C2 and is displayed there.

The program masks displayed at the first client means C1 and at thesecond client means C2 now are synchronous, i.e., the same program maskis displayed for the users U1 and U2. As a result, the first user U1 andthe second user U2 are able to communicate via the displayed programmasks.

The second user U2, who may be, for example, a support assistant, nowhas the possibility to “guide” the first user, for example, a customer,to another program mask. For this, the second user U2 requests via thesecond server means C2, an alternative program mask from the secondserver means S2. For the requested alternative or a second program mask,the server means S2 determines a second unique identifier ID2 andtransmits the latter together with the requested second program mask tothe second client means C2, where it is displayed together with therequested program mask.

The second user U2 may now inform the first user U1 about this secondunique identifier ID2, as far as no communication connection existsbetween the first client means C1 and the second client means C2. Incase a communication connection exists between the two client means C1,C2, the second unique identifier ID2 may be transmitted from the secondclient means C2 to the first client means C1. Upon receipt of the secondunique identifier ID2 by the first client means C1, the first clientmeans C1 may request the program mask belonging to this second uniqueidentifier ID2 from the first server means S1. The requested alternativeor second program mask is then displayed at the first client means C1.

Thereby, the Internet pages displayed at the first client means C1 andthe second client means C2 are synchronized again.

The method described in connection with FIG. 2 b may also be used forsynchronization of program masks, which, for example, belong to theoperation system of the first or the second client means C1, C2.

The first client means C1 and the second client means C2 may be coupledto each other via a communications network, as the Internet, (wherein noconnection via the communications network is provided between the twoserver means S1 and S2, which may be the case, for example, if companyinternal servers are concerned with respect to the two server means S1and S2, which do not have access to an external communications network,for example the Internet). In case both client means C1 and C2 may becoupled via a communications network, the exchange of the first uniqueidentifier ID1 and the second unique identifier ID2 may be executed viathe communications network. In this case, the two client means C1 and C2are adapted to transmit unique identifiers to the respective other oneof the client means or to receive unique identifiers from the respectiveother client means. Preferably, then the two client means C1 and C2 arefurther adapted to induce a request to the respective server means asreaction to a received unique identifier in order to request the programmask assigned to the received unique identifier from the respectiveserver means.

According to a preferred embodiment of the invention according to theconfiguration shown in FIG. 2 b, it may be provided for the databasesDB1 and DB2 to be synchronized cyclically or as needed, in order toensure that in the two databases, the same program masks also areassigned to the same unique identifiers. By means of the synchronizationit may also be ensured that, for example, program masks newly added tothe database DB2 or their unique identifiers are also added to thedatabase DB1. In case, for example, program masks and the uniqueidentifiers of a certain version of an application program belongingthereto are stored in the databases DB1 and DB2, it may be ensured thatafter an update of the application program on the second server meansS2, the unique identifiers of the program masks of the new version arealso available in the database DB1. This is also applicable for anupdate of an operation system to a new version, wherein here, also anupdate of the unique identifiers or the assignments of the uniqueidentifiers to the program masks of the operation system is carried out.

FIG. 3 shows a sequence diagram of a method according to the invention,according to which a program mask being displayed at the second clientmeans C2, for example, an Internet page, is synchronized with theprogram mask displayed at the first client means C1, for example, anInternet page, and for which the modifications of the Internet pagecarried out at the second client means C2 are synchronized with thefirst client means C1.

In a first step S1, a first request message is transmitted from thefirst client means C1 to the server means S, by means of which a firstprogram mask is requested from the server means S. The server means Sanalyzes the received first request message, and generates, in a secondstep S2 a unique identifier ID1, which is stored in the database DB in astep S3.

The first unique identifier ID1 is assigned to the requested firstprogram mask in the database DB. The unique identifier ID1 is generatedonce again for each requested program mask, wherein differentidentifiers are generated for one and the same program mask which isrequested by different first client means C1, and are stored in thedatabase DB. Thereby, it is ensured that modifications, which are madefor a program mask, are only transmitted to a first client meansrespectively in the steps S10 to S12 such that the modificationsrespectively only will be effective at one first client means, even ifthe program mask is being displayed at different first client means.

After the first unique identifier ID1 has been stored in the database DBand has been assigned to the requested mask, the requested program maskand the first unique identifier ID1 are transmitted to the first clientmeans C1 in the step S4, and are being displayed there. The first uniqueidentifier ID1 may be displayed at the first client means C1 in thedisplay field 11, as has been described with respect to FIG. 1.

In the subsequent step S5, the unique identifier ID1 is notified to thesecond client means C2. In the step S6, a second request message is thentransmitted from the second client means C2 to the server means S,wherein the second request message comprises at least the first uniqueidentifier ID1 received in the step S5. After receiving the secondrequest message, the server means S determines the program mask assignedto the received first unique identifier ID1 in the steps S7 and S8, byrequesting the program mask assigned to the first unique identifier ID1in the database DB. The program mask thus determined is transmitted tothe second client means C2 in the step S9 and is displayed there. Thefirst unique identifier ID1 may also be displayed in a display field 11at the second client means C2.

After completion of the step S9, the same program mask is displayed atthe first client means C1 and at the second client means C2 such thatthe program masks displayed at the two client means are synchronized.The users U1, U2 of the first client means C1 or the second client meansC2 may now communicate via the displayed program mask, which may beeffected, for example, via a telecommunications link between the twousers. The communication may, however, also result from direct messagesbetween the first user and the second user, wherein the direct messagesmay be displayed or input in a further program mask which is independentof the requested program mask.

According to the invention, the user U2, who may be, for example, asupport assistant, may modify the first program mask displayed at thesecond client means C2, wherein the program mask displayed at the firstclient means C1 is being synchronized with the program mask displayed atthe second client means C2.

For this, the user U2 at the second client means C2 makes modificationsto the program mask which is displayed. For example, the second user U2may mark important product information for the product displayed in theprogram mask, may replace available texts by new texts, may replace thedisplayed product price by a new price, or the like.

The modifications to the program mask made by the user U2 aretransmitted to the server means S by means of an update message in stepS10. The server means S provides the modifications made to the programmask for transmission to the first client means C1.

According to a preferred embodiment of the method according to theinvention, the modifications received with the update message are storedin the database DB, and are assigned to the first unique identifier ID1there. By the assignment of the modifications to the first uniqueidentifier ID1, it is ensured that the modifications only concern thatprogram mask, which is displayed at the first client means C1, even ifthe same program mask is also displayed at the other first client means.

In a further step S11, the modifications are transmitted from the servermeans S to the first client means C1. For this, the first client meansC1 or the program mask being displayed at the first client means C1 maybe configured to cyclically query the server means as to whethermodifications are available for the program mask (which is identified bythe first unique identifier ID1) displayed at the first client means C1.In response to such a request, the modifications are transmitted fromthe server means S to the first client means C1, or the first clientmeans C1 is informed that no modifications are available.

After the modifications have been transmitted to the first client meansC1 in the step S11, in the step S12, the program mask displayed at thefirst client means C1 is updated with the modifications such that afterthe update of the program mask, the program mask displayed at the firstclient means C1 is synchronized to the program mask displayed at thesecond client means C2. If, for example, the product price is replacedby a new price in the program mask displayed at the second client meansC2, then, after execution of the steps S11 and S12, the new price isalso displayed in the program mask displayed at the first client meansC1.

The steps S10 to S12 may be carried out several times, i.e., the programmask displayed at the second client means C2 may be modified severaltimes, wherein each one of the modifications made, effects an update ofthe program mask displayed at the first client means C1.

In a last step S13, the first unique identifier ID1 stored in thedatabase DB is deleted, wherein also the mask assigned to the firstunique identifier ID1 or the modifications assigned to the first uniqueidentifier ID1 are deleted. Thereby, the method shown in FIG. 3 isterminated.

FIG. 4 shows a sequence diagram of a method according to the invention,according to which the user U2 of the second client means C2 mayinstruct the first client means C1 to display a new program mask, and,in fact, that one, which is being displayed at the second client meansC2.

The method shown in FIG. 4 may be used as continuation of the methodshown in FIG. 3.

In a first step S1.1, a third request message is transmitted from thesecond client means C2 to the server means S, by means of which a secondprogram mask is requested from the server means S.

The server means S receives the third request message, and, in a stepS2.1, generates a second unique identifier ID2, which is stored in thedatabase DB in a further step S3.1, and is assigned to the requestedsecond program mask there.

In the step S4.1, the requested second mask is transmitted to the secondclient means C2 together with the second unique identifier ID2, and isdisplayed there, wherein the second unique identifier ID2 may bedisplayed in the display field 11, as shown with reference to FIG. 1.

In the next step S5.1, the second unique identifier ID2 is notified tothe first client means C1 by the second client means C2.

Alternatively, the second unique identifier ID2 may be requested by theserver means S through the first client means C1, and may be transmittedto the first client means C1 from the server means S. In this case, thesecond unique identifier ID2 is made available by the server means S fortransmission to the first client means C1. The first client means C1 mayquery the server means S cyclically, whether a new unique identifier,i.e., the unique identifier ID2, is available for transmission.

As soon as the second unique identifier ID2 is available at the firstclient means C1, a fourth request message is transmitted from the firstclient means C1 to the server means S, comprising at least the secondunique identifier ID2. After receiving the fourth request messagethrough the server means S, the server means determines, in the stepsS7.1 and S8.1, the second program mask assigned to the second uniqueidentifier ID2 in the database DB. The program mask thus determined isthen transmitted from the server means S to the first client means C1 inthe step S9.1 and is displayed there. Thereby, the program maskdisplayed at the first client means C1 is synchronous to the programmask displayed at the second client means C2.

In the subsequent steps S10 to S12, the program mask displayed at thesecond client means C2 may be modified, wherein the program maskdisplayed at the first client means C1 is synchronized with themodifications.

Hereby, the steps S10 to S12 correspond to the steps S10 to S12 in FIG.3 so that a repeated description of these steps is omitted.

In a last step of the method according to FIG. 4, the second uniqueidentifier ID2 stored in the database DB is deleted, whereby also theprogram mask assigned to the second unique identifier ID2 or theassigned modifications are deleted.

FIG. 5 shows a flow chart of the method according to the invention,according to which the method according to FIG. 3 and FIG. 4 areexecuted consecutively.

In a first step S0, here, a session is started for the first clientmeans C1, which may be initiated, for example, by requesting a programmask by the first client means. During session set up, also anauthentication of the first user U1 may be executed with respect to theserver means S. Preferably, the session is identified by a uniquesession identifier. The session identifier may be a session ID or thelog in of the first user. The session identifier is used to uniquelyidentify the first user at the first client means C1, or to distinguishthe first user U1 at the first client means from other users at otherfirst client means.

As far as no session has been started, for example, also the MACaddress, a browser identifier (as far as the program mask to besynchronized is an Internet page), a software license number, a hardwareserial number, an EAN code, or a unique biometric feature may be used asdistinguishing feature for different users at different first clientmeans. As unique distinguishing feature, also a telephone number, ifneeded, with area code, may be provided.

After the session has been started, the steps S1 to S12 of the methodshown in FIG. 3 are executed, by means of which the program maskdisplayed at the second client means C2 is synchronized with the programmask displayed at a first client means C1.

Next, the steps S1.1 to S12 of the method according to FIG. 4 areexecuted, by means of which the program mask displayed at the firstclient means C1 is synchronized with the program mask displayed at thesecond client means C2.

For completion of the method, the first unique identifier ID1 and thesecond unique identifier ID2 are deleted in the database DB, and thesession is terminated in the step S14. By means of the method accordingto the invention described above, it is now possible to synchronizeprogram masks nearly in real time.

FIG. 6 shows by means of a program mask, which is an Internet page, howan update of an Internet page may be carried out according to the methodsteps S10 to S12 (cf. FIG. 3 and FIG. 4).

FIG. 6 a shows a program mask, which is displayed at the first clientmeans C1 and at the second client means C2, and a hierarchical treestructure representing the program mask.

The program mask consists of a high level element M, forming the rootnode of the hierarchical tree structure. The mask or the element Mcomprises two areas D1, D2 (for example, so-called HTML-DIV's), whichrespectively form a child node of the root node M in the hierarchicaltree structure. Each one of the two areas D1, D2 here, comprises aninput field T1 or T2 and a checkbox B1 or B2. The input field T1 and thecheckbox B1 form child nodes of the element T1 in the hierarchical treestructure. The input field T2 and the checkbox B2 form child nodes ofthe element T2 in the hierarchical tree structure.

According to the example shown in FIG. 6, now, the input field T2 is tobe replaced by a list box L1. The user U2 at the second client means C2,hereby, may remove the input field T2 and may insert a new list box L1into the area D2. The part T of the hierarchical tree structure affectedby the modification is shown in FIG. 6 b, wherein here, it can be seenthat the node T2 is replaced by the node L1, i.e., the node L1 isinserted into the hierarchical tree structure as child of the node T2.

The new hierarchical tree structure resulting from this is shown in FIG.6 c. In order to synchronize the program mask displayed at the firstclient means with the modifications carried out at the second clientmeans C2, the modified part T, which now comprises the list box L1 aschild node of the element D2, is transmitted by means of an updatemessage from the second client means C2 to the server means S, and isassigned to the unique identifier of the program mask there.

The first client means C1 may now query the server means, whether amodification of this program mask is available. If this is the case, thepart T of the hierarchical tree structure, which now comprises the listbox L1 as child node of the element D2, is transmitted from the servermeans to the first client means C1. After the part T of the hierarchicaltree structure has been transmitted to the first client means C1, thefirst client means may update the hierarchical tree structure, whichrepresents the program mask displayed at the first client means C1, byremoving, for example, the node D2 together with its child elements fromthe hierarchical tree structure, and by inserting the modified part T aschild node of the element M into the hierarchical tree structure. Theresult then is the hierarchical tree structure shown in FIG. 6 c.

The modification of the hierarchical tree structure at the first clientmeans C1 causes the program mask being displayed there to be modifiedtoo, and displaying a list box L1 instead of the input field T2.Thereby, the program mask displayed at the first client means C1 issynchronized with the program mask displayed at the second client meansC2.

Referring to FIG. 6, an updating of a program mask has been shown usingas an example an Internet page, which is represented by a so-calleddocument object model (DOM). According to the invention, also otherrepresentations of an Internet page may be used. In particular, by meansof the method described above, also input masks of a computer programcan be modified and the modifications can be synchronized.

REFERENCE NUMERALS

-   10 program mask (e.g., Internet page)-   11 display field for unique identifier of the program mask-   12 input field for input of a unique identifier of a program mask-   13 button for confirmation of the input into the input field 12-   S0-S14 method steps-   C1 first client means-   C2 second client means-   DB, DB1, DB2 data base-   ID1 first unique identifier-   ID2 second unique identifier-   S, S1, S2 server means (e.g., web server)-   T the part(s) of the program mask to be updated-   U1 first user (e.g., customer)-   U2 second user (e.g., support assistant)

What is claimed is:
 1. A method for synchronization of program masks ina system, the system comprising at least one server means (S) and atleast a first client means (C1) and a second client means (C2), whereinthe client means (C1; C2) can be coupled to the at least one servermeans (S), and wherein the method comprises: receiving (S1) a firstrequest message from the first client means (C1), wherein a firstprogram mask (10) is requested by the first request message; determininga first unique identifier (ID1) for the requested first program mask(10); transmitting (S4) the requested first program mask (10) and thefirst unique identifier (ID1) to the first client means (C1); receiving(S6) a second request message from the second client means (C2), whereinthe second request message comprises at least the first uniqueidentifier (ID1); determining (S7; S8) the first program mask (10),which is assigned to the received first unique identifier (ID1); andtransmitting (S9) the determined first program mask (10) to the secondclient means (C2).
 2. The method of claim 1, wherein the determining ofthe first unique identifier (ID1) comprises: generating (S2) the firstunique identifier (ID1) for the requested first program mask (10); andstoring (S3) the first unique identifier (ID1) in a storage means (DB),wherein the first unique identifier (ID1) is assigned to the requestedfirst program mask (10).
 3. The method of claim 1, wherein duringdetermining (S7; S8) of the first program mask (10), the first programmask (10) assigned to the received first unique identifier (ID1) isqueried (S7) in the storage means (DB), and information on the firstprogram mask (10) is received (S8) by the storage means (DB) as a resultof the query.
 4. The method of claim 1, wherein the first uniqueidentifier (ID1) received with the second request message by the secondclient means (C2) has been transmitted (S5) from the first client means(C1) to the second client means (C2).
 5. A method for synchronization ofprogram masks in a system, the system comprising at least one servermeans (S) and at least a first client means (C1) and a second clientmeans (C2), wherein the client means (C1; C2) can be coupled to the atleast one server means (S), and wherein the method comprises: receiving(S1.1) a search request message from the second client means (C2),wherein a second program mask (10) is requested by the search requestmessage; determining a second unique identifier (ID2) for the requestedsecond program mask (10); transmitting (S4.1) the requested secondprogram mask (10) and the second unique identifier (ID2) to the secondclient means (C2); receiving (S6.1) a fourth request message from thefirst client means (C1), wherein the fourth request message comprises atleast the second unique identifier (ID2); determining (S7.1; S8.1) thesecond program mask (10), which is assigned to the received secondunique identifier (ID2); and transmitting (S9.1) the determined secondprogram mask (10) to the first client means (C1).
 6. The method of claim5, wherein the determining of the second unique identifier (ID2)comprises: generating (S2.1) the second unique identifier (ID2) for therequested second program mask (10); and storing (S3.1) the second uniqueidentifier (ID2) in a storage means (DB), wherein the second uniqueidentifier (ID2) is assigned to the requested second program mask (10).7. The method of claim 5, wherein during determining (S7.1; S8.1) of thesecond program mask (10), the second program mask (10) assigned to thereceived second unique identifier (ID2) and the storage means (DB) isqueried (S7.1) in the storage means (DB), and information on the secondprogram mask (10) is received (S8.1) by the storage means (DB) as resultof the query.
 8. The method of claim 5, wherein the second uniqueidentifier (ID2) received by the first client means (C1) with the fourthrequest message has been transmitted (S5.1) from the second client means(C2) to the first client means (C1).
 9. The method of claim 1, furthercomprising the steps of: receiving (S1.1) a search request message fromthe second client means (C2), wherein a second program mask (10) isrequested by the search request message; determining a second uniqueidentifier (ID2) for the requested second program mask (10);transmitting (S4.1) the requested second program mask (10) and thesecond unique identifier (ID2) to the second client means (C2);receiving (S6.1) a fourth request message from the first client means(C1), wherein the fourth request message comprises at least the secondunique identifier (ID2); determining (S7.1; S8.1) the second programmask (10), which is assigned to the received second unique identifier(ID2); and transmitting (S9.1) the determined second program mask (10)to the first client means (C1).
 10. The method of claim 1, wherein thesteps are carried out on the server side.
 11. The method of claim 1,wherein the server means (S) receives (S10) an update message from thesecond client means (C2), which comprises information on which parts (T)of the first and second program masks (10) comprising a number of partstransmitted (S4; S9) to the first client means (C1) are to be updatedand how they are to be updated.
 12. The method of claim 11, wherein theserver means stores the received update message in the storage means(DB) and assigns it to the first or second unique identifier (ID1; ID2).13. The method of claim 11, wherein the server means (S) provides theupdate message for transmission (S11) to the first client means (C1) inorder to effect an update (S12) of the transmitted (S4; S9) first orsecond program masks (10) according to the information comprised in theupdate message at the first client means (C1).
 14. The method of claim1, wherein the server means (S), during termination of the method,effects (S13) a deletion of the first or second unique identifiers (ID1;ID2) in the storage means (DB).
 15. The method of claim 1, wherein in afirst step (S0), a session is started for the first client means (C1),and the session is terminated in a last step (S14).
 16. The method ofclaim 1, wherein the first client means (C1) is identifiable by a uniqueclient identifier, and wherein the first or the second unique identifier(ID1; ID2) is assigned to the client identifier, and the assignments arestored in the storage means.
 17. The method of claim 16, wherein in alast step (S14), the session is terminated, and the unique identifiers(ID1; ID2) assigned to the client identifier are deleted in the storagemeans.
 18. The method of claim 16, wherein the unique client identifiercomprises one of an IP address, MAC address, browser identifier,software license number, hardware serial number, email address,telephone number, EAN code, and a unique biometric feature.
 19. Themethod of claim 11, wherein the first or the second program masks (10)is represented by a hierarchical tree structure, wherein each part ofthe program mask is represented by a node in the tree structure, whereineach part of the program mask may comprise a number of parts of theprogram mask, and wherein the update message comprises information onwhich nodes of the tree structure are to be updated and how they are tobe updated.
 20. The method of claim 1, wherein the first or the secondprogram masks (10) comprises a display field (11) for display of thefirst and the second unique identifiers (ID1; ID2) and an input field(12) for input of the first or the second unique identifiers (ID1; ID2).21. The method of claim 1, wherein the program mask is an input mask ofa computer program or an Internet page.
 22. The method of claim 1,wherein the first and the second unique identifiers (ID1; ID2)respectively are a sequence of digits, and wherein the number of digitsof the first identifier (ID1) is different from the number of digits ofthe second identifier (ID2).
 23. The method of claim 22, wherein thesecond identifier (ID2) has fewer digits than the first identifier(ID1).
 24. The method of claim 1, wherein the server means (S) is partof the first client means (C1) or is part of the second client means(C2), in particular, as a service being executable on the first clientmeans (C1) and/or on the second client means (C2).